import router from '@/router'
import store from '@/store'

router.beforeEach((to, from, next) => {
  // 写法一：
  // // 有 token
  // if (store.getters.token) {
  //   // 已登录
  //   // 是否去登录页
  //   if (to.path === '/login') {
  //     // next 如果传入 url 可以跳转页面
  //     next('/')
  //   } else {
  //     next()
  //   }
  // } else { // 没 token
  //   // 未登录
  //   // 在白名单 放行
  //   const whiteList = ['/login', '/404', '/test']
  //   if (whiteList.indexOf(to.path) !== -1) {
  //     // 在白名单放行
  //     next()
  //   } else {
  //     // 不在白名单 跳到登录页
  //     next('/login')
  //   }
  // }

  // 写法二：
  const url = to.path
  const token = store.getters.token
  const whiteList = ['/login', '/404', '/test']
  // 1、已登录
  // 1.1、去登录页 => 跳首页
  if (token && url === '/login') {
    next('/')
    return
  }
  // 1.2、不去登录页 => 放行
  if (token && url !== '/login') {
    next()
    return
  }

  // 2、未登录
  // 2.1、在白名单 => 放行
  if (!token && whiteList.indexOf(url) !== -1) {
    next()
    return
  }
  // 2.2、不在白名单 => 跳登录页
  if (!token && whiteList.indexOf(url) === -1) {
    next('/login')
    return
  }
})
